package com.hanamaki.study.day03;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

import java.util.ArrayList;
import java.util.List;

public class SeleniumAPI02 {

    //注册驱动
    WebDriver driver;

    @BeforeMethod
    public void setUp() {

        //注册本地火狐打开的位置
        System.setProperty("webdriver.gecko.driver", "C:\\Program Files\\Mozilla Firefox\\geckodriver.exe");
        //初始化
        driver = new FirefoxDriver();


    }

    @Test
    public void test() {
        driver.get("file:///C:/Users/Administrator/Desktop/testhtml/exam/House.html");

        /*  判断 表单中的  复选框 是否被选中 。 */
        /* 将所有的  复选框的  元素 定位出来 使用  by name 的方式 */
        WebElement c1 = driver.findElement(By.name("c1"));
        WebElement c2 = driver.findElement(By.name("c2"));
        WebElement c3 = driver.findElement(By.name("c3"));
        WebElement c4 = driver.findElement(By.name("c4"));
        WebElement c5 = driver.findElement(By.name("c5"));

        /* 将  五个 复选框 添加至 集合列表中   */
        List<WebElement> list = new ArrayList<WebElement>();
        list.add(c1);
        list.add(c2);
        list.add(c3);
        list.add(c4);
        list.add(c5);

        /* 判断 复选框是否被选中   */
        for (int i = 0; i < list.size(); i++) {
 /* isSelected 判断 复选框 是否被选中   */
            if (list.get(i).isSelected()) {
                list.get(i).click();
 /* getAttribute 获得元素中指定属性的 属性的 值                */
                System.out.println(list.get(i).getAttribute("name") + "这个复选框 被选中了");
            } else {
                list.get(i).click();
                System.out.println(list.get(i).getAttribute("name") + "这个复选框 没有被选中了");
            }
        }

/*  getText()  可以获得 网页中标签显示在 页面上的 具体的文本值         */
        WebElement element = driver.findElement(By.cssSelector("p.edit"));
        System.out.println(element.getText());

/*  获得 指定元素的标签名   */
        String tagName = element.getTagName();
        System.out.println(tagName);


/*================================== isEnabled() 判断网页中的元素是否已启用 ========================================       */
        /* 判断网页中的 物业名称 是否已启用 首先需要元素 定位  */
        WebElement element1 = driver.findElement(By.cssSelector("input.uname"));
        /* 文本框在默认的情况下 是 已启用的 */
        /* 如果文本框在 只读的情况下  已启用 */
        /* 但是 如果文本框在 禁用的情况下  未启用  */
        System.out.println("物业名称文本框 ：" + (element1.isEnabled() ? "已启用" : "未启用"));

/*================================== isDisplayed() 判断网页中的元素是否 隐藏 ========================================*/

        /* 判断 文字是否隐藏 */
        WebElement edit = driver.findElement(By.cssSelector("p.edit"));
        System.out.println("页面中文字：" + (edit.isDisplayed() ? "未隐藏" : "已隐藏"));
    }


    @AfterMethod
    public void close() {
//        driver.close();
    }
}
